function maxLong(str1, str2) {
    if (
        str1 == null ||
        str2 == null ||
        str1.length == 0 ||
        str2.length == 0
    ) {
        return 0;
    }
    let max = 0;
    let dp = [];
    // 这里我们就是创建一个二维数组
    for (let i = 0; i < str1.length + 1; i++) {
        dp[i] = [];
        for (let j = 0; j < str2.length + 1; j++) {
            dp[i][j] = 0;
        }
    }
    /**
     *    假设： const str1 = "people"; const str2 = "eplm";
     *          dp = [
     *                  [0,0,0,0,0],
     *                  [0,0,0,0,0],
     *                  [0,0,0,0,0],
     *                  [0,0,0,0,0],
     *                  [0,0,0,0,0],
     *                  [0,0,0,0,0],
     *                  [0,0,0,0,0]   
     *              ]
     * 
     * 
     * */
    // 这里我们为什么从 1 开始，我们定义的时候：dp[i][j]表示第一个字符串前i个字符和第二个字符串前j个字符，
    // 我们 dp[1][1]其实就是 str1[0] 和 str2[0]表示前一个字符
    for (let i = 1; i <= str1.length; i++) {
        for (let j = 1; j <= str2.length; j++) {
            if (str1.charAt(i - 1) === str2.charAt(j - 1)) {
                //
                dp[i][j] = dp[i - 1][j - 1] + 1;
            } else {
                dp[i][j] = 0;
            }
            max = Math.max(max, dp[i][j]);
        }
    }
    console.log(dp);
    return max;
}